HTMLify
app.js
Views: 8 | Author: huxn-webdev
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | const searchMeal = async (e) => { e.preventDefault(); // Select Elements const input = document.querySelector(".input"); const title = document.querySelector(".title"); const info = document.querySelector(".info"); const img = document.querySelector(".img"); const ingredientsOutput = document.querySelector(".ingredients"); const showMealInfo = (meal) => { const { strMeal, strMealThumb, strInstructions } = meal; title.textContent = strMeal; img.style.backgroundImage = `url(${strMealThumb})`; info.textContent = strInstructions; const ingredients = []; for (let i = 1; i <= 20; i++) { if (meal[`strIngredient${i}`]) { ingredients.push( `${meal[`strIngredient${i}`]} - ${meal[`strMeasure${i}`]}` ); } else { break; } } const html = ` <span>${ingredients .map((ing) => `<li class="ing">${ing}</li>`) .join("")}</span> `; ingredientsOutput.innerHTML = html; }; const showAlert = () => { alert("Meal not found :("); }; // Fetch Data const fetchMealData = async (val) => { const res = await fetch( `https://www.themealdb.com/api/json/v1/1/search.php?s=${val}` ); const { meals } = await res.json(); return meals; }; // Get the user value const val = input.value.trim(); if (val) { const meals = await fetchMealData(val); if (!meals) { showAlert(); return; } meals.forEach(showMealInfo); } else { alert("Please try searching for meal :)"); } }; const form = document.querySelector("form"); form.addEventListener("submit", searchMeal); const magnifier = document.querySelector(".magnifier"); magnifier.addEventListener("click", searchMeal); |